package cn.tannn.cat.tmq.core;

/**
 * 消息消费者
 *
 * @author <a href="https://t.tannn.cn/">tnnn</a>
 * @version V1.0
 * @date 2024/7/7 下午2:04
 */
public class TConsumer<T> {

    /**
     * 从 broker 里拉
     */
    TBroker broker;

    /**
     * 消息主题
     */
    String topic;

    /**
     * mq
     */
    TMq mq;



    /**
     * 订阅消息主题
     * @param topic 消息主题
     */
    public void subscribe(String topic){
        this.topic = topic;
        // 获取mq
        mq = broker.find(topic);
        if (mq == null) throw new RuntimeException("topic not found");

    }

    /**
     * 主动拉取消息
     * @param timeout 拉取超时时间
     * @return 消息
     */
    public Message<T> poll(long timeout) {
        return mq.poll(timeout);
    }

}
